package cn.bearspark.article.provider.dao.co;

import cn.bearspark.framework.redis.starter.buffer.hash.HotData;
import cn.bearspark.framework.redis.starter.buffer.hash.un.Cacheable;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 专栏数据的缓存对象
 *
 * @author f
 */
@Data
public class ArticleCO implements Cacheable {

    /**
     * 专栏的 id
     */
    private Long articleId;

    /**
     * 发布专栏的动态 id
     */
    private Long happeningId;

    /**
     * 发布专栏的用户 id
     */
    private Long userId;

    /**
     * 封面图片的路径，可以为 null，如果为 null，则后端设置默认的封面
     */
    private String coverUrl;

    /**
     * 专栏的标签 id
     */
    private Long tagId;

    /**
     * 专栏的可见性
     *
     * @see cn.bearspark.common.enumeration.VisibilityEnum
     */
    private Integer visibility;

    /**
     * 专栏的可评论性
     *
     * @see cn.bearspark.common.enumeration.CommentAbleEnum
     */
    private Integer commentAble;

    /**
     * 专栏的创作声明
     *
     * @see cn.bearspark.common.enumeration.DeclarationEnum
     */
    private Integer declaration;

    /**
     * 转载专栏的路径，如果没有转载，则可以为 null
     */
    private String reprintArticleUrl;

    /**
     * 专栏的功德量
     */
    @HotData
    private Long meritNum;

    /**
     * 专栏的收藏量
     */
    @HotData
    private Long collectNum;

    /**
     * 专栏的浏览量
     */
    @HotData
    private Long viewNum;

    /**
     * 专栏的发布时间
     */
    private LocalDateTime pubTime;

    @Override
    public Long id() {
        return articleId;
    }
}
